<?php

class XQL_CrossQuery extends XQL_SimpleQuery
{

	/**
	 * A lekéréshez rendelt adatbázis tábla.
	 * @var XQL_Table
	 */
	protected $table;

	/**
	 * A lekéréshez rendelt adatbázis tábla.
	 * @var XQL_Table
	 */
	protected $tableRelated;

	/**
	 * A {@link #table}-t és {@link #tableRelated}-et összekapcsoló feltétel(ek)
	 * @var XQL_Expression
	 */
	protected $relation;

	/**
	 * Táblát rendel a tábla mellé.
	 *
	 * @param XQL_Table $table
	 * @return XQL_CrossQuery
	 */
	public function bindTableRelated(XQL_Table $table)
	{
		$this->tableRelated = $table;
		return $this;
	}

	/**
	 * A két tábla közt lévő kapcsolat feltétele.
	 * 
	 * @param XQL_Expression $expression
	 * @return XQL_CrossQuery
	 */
	public function bindRelation(XQL_Expression $expression)
	{
		$this->relation = $expression;
		return $this;
	}

	/**
	 * Belső használatra.
	 *
	 * @param XQL_Table $table
	 * @param XQL_Table $tableRel
	 * @param XQL_Expression $expr
	 * @param array $keys
	 */
	public function setupCross(XQL_Table $table, XQL_Table $tableRel, XQL_Expression $expr, $keys)
	{
		$this->table = $table;
		$this->tableRelated = $tableRel;
		$this->relation = $expr;
		$this->keys = $keys;
	}
}

?>